<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>


    <script>
        //强制类型转换
        //转换成字符串
        //方式一：直接调用被转换的数据的一个方法，toString(),调用该方法的时候，是不会改变原变量的类型的，需要进行变量的接收

        // var a = 123;
        // var a = a.toString();
        // var a = true;
        // var a = a.toString();
        //Cannot read property 'toString' of null,null和undefind是没有toString方法的
        // var a = null;
        // var a = a.toString();
        // console.log(typeof a)

        //方式二：调用string()函数，将需要转换的类型作为参数传入到函数的参数列表中

        //调用string()函数的时候，number，boolean类型是直接调用的它们的toString方法，而对于null和undefind来说，是在底层将它们转成了字符串"null","undefind"
        // var a = undefined;
        // var b = String(a);
        // console.log(typeof a)
        // console.log(typeof b)



        /******将其它类型转换成数字类型*/

        //方法一：
        // 直接调用Number（）函数转换
        // var a = true; //1
        // var a = false; //0
        // var b = Number(a);
        // console.log(typeof a);
        // console.log(b)

        // var a = null; //0
        // var b = Number(a);
        // console.log(typeof a);
        // console.log(b)

        // var a = undefined; //NaN=>not a number
        // var b = Number(a);
        // console.log(typeof a);
        // console.log(b)

        //方式二：
        // 调用parseInt()/parseFloat()
        // var a = "deq123ad23adad"
        // var b = parseInt(a);
        // console.log(typeof(parseInt(b))) //number
        // console.log(b)


        var a = "123.123.123"
        var b = parseFloat(a);
        console.log(typeof(parseFloat(b))) //number
        console.log(b)
    </script>
</body>

</html>